const koaRouter = require('koa-router');
const Shop = require('../../models/shop/shop');

const router = new koaRouter({
    prefix: '/api/shop'
});

/**
 * 请求标题：商品添加
 * 请求接口：localhost:8080/api/shop/add
 * params: { imgUrl } 商品图片路径
 * params：{ imgTitle } 商品图片标题
 * params: { title } 商品标题
 * params: { price } 商品价格
 * params: { createTime } 商品创建时间
 * 
 * 后端返回给前端的数据格式如下：
 * {
 *      // 0表示success，1表示fail
 *      code: 0 / 1,
 *      // 提示信息
 *      msg: '商品添加成功！',
 *      // 响应的数据体
 *      responseData: {}
 * }
 */
router.post('/add', async ctx => {
    const { 
        imgUrl,
        title,
        price,
        createTime
    } = ctx.request.body;

    // 构建添加商品的实体对象
    try {
        await Shop.create({
            imgUrl,
            imgTitle,
            title,
            price,
            createTime
        });

        return ctx.body = {
            code: 0,
            msg: '商品添加成功！',
            responseData: {}
        };
    } catch (err) {
        console.log('err', err);
        return ctx.body = {
            code: 10001,
            msg: '商品添加失败！',
            responseData: {}
        };
    }
});

/**
 * 请求标题：商品列表
 * 请求接口：localhost:8080/api/shop/list
 * params: { pageNum } 当前页
 * params: { pageSize } 每页多少条
 * 
 * 后端返回给前端的数据格式如下：
 * {
 *      // 0表示success，1表示fail
 *      code: 0 / 1,
 *      // 提示信息
 *      msg: '商品查询成功！',
 *      // 响应的数据体
 *      responseData: {}
 * }
 */
router.post('/list', async ctx => {
    const {
        pageNum,
        pageSize
    } = ctx.request.body;

    let shopList = null;

    try {
        shopList = await Shop.find({}).skip((parseInt(pageNum) - 1) * parseInt(pageSize)).limit(parseInt(pageSize));

        return ctx.body = {
            code: 0,
            msg: '商品查询成功！',
            responseData: shopList
        };
    } catch (err) {
        console.log('err', err);
        return ctx.body = {
            code: 10002,
            msg: '商品查询失败！',
            responseData: {}
        };
    }
});

module.exports = router;